Automated banking machines are known. A common type of automated banking machine used by consumers is an automated teller machine (“ATM”). ATMs enable customers to carry out banking transactions. Examples of banking transactions that are sometimes carried out with ATMs include the dispensing of cash, the making of deposits, the transfer of funds between accounts, the payment of bills, the cashing of checks, the purchase of money orders, the purchase of stamps, the purchase of tickets, the purchase of phone cards and account balance inquiries. The types of banking transactions a customer can carry out at an ATM are determined by the particular banking machine, the system in which it is connected and the programming of the machine by the entity responsible for its operation.
Other types of automated banking machines may be operated in other types of environments. For example certain types of automated banking machines may be used in a customer service environment. For example certain types of automated banking machines may be used for purposes of counting currency or other items that are received from or which are to be given to a customer. Other types of automated banking machines may be used to validate include machines which are operative to provide users with the right to merchandise or services in an attended or a self-service environment. For purposes of this disclosure an automated banking machine shall be deemed to include any machine which may be operated to carry out transactions including transfers of value.
ATMs may include various types of transaction function devices. These devices are operated to carry out transactions. Different types of ATMs include different types of devices. The different types of devices enable the ATM to carry out different types of transactions. For example, some types of ATMs include a depository for accepting deposits while other ATMs do not. Some ATMs have a “touch screen” while others have separate displays and input buttons. ATMs can also be fitted with devices such as cash and coin acceptors, statement printers, check validators, bill acceptors, thumb print readers and other types of devices, while other ATMs do not include such devices.
Many financial institutions wish to add new functionality to their existing ATMs. For example, a bank with ATMs for dispensing cash may wish to add a statement printer to each of the ATMs for printing a customer's banking statement. Such new functionality usually requires additional software modifications to the ATM in addition to the new hardware. Unfortunately, the process of updating ATM software is typically complicated by the fact that many financial institutions purchase ATM hardware from more than one manufacturer. Thus, to add new software for performing a new function such as printing banking statements, separate applications must be written or modified for each vendor-specific ATM platform. Compounding this complexity, vendor-specific ATM platforms may similarly incorporate transaction function devices from a variety of other sources so within a vendor-specific ATM platform, significant variation may also be present in vendor-specific transaction function device drivers. Porting applications to multiple ATM platforms, significantly reduces the productivity of the ATM software developers. Consequently, there exists a need for an architecture that enables developers to write ATM applications that work with minimal modification on a plurality of proprietary ATM platforms, with a plurality of proprietary transaction function devices.
To achieve this goal, industry standards are being developed which are designed to enable ATM hardware and software to be cross-vendor compatible. One example of such a standard is WOSA/XFS (Windows Open Services Architecture/eXtensions for Financial Services) which is defined by the CEN/ISSS XFS standard committee. FIG. 26 shows a schematic view of an exemplary WOSA/XFS architecture. An exemplary WOSA/XFS enabled ATM 1110 may include a WOSA/XFS Manager 1112. The WOSA/XFS Manager 1112 includes a standardized interface to enable an ATM terminal application 1114 to communicate with ATM transaction function devices 1116. Each transaction function device 1116 includes a corresponding service provider interface component 1118. The service providers 1118 are supplied by the vendors of the ATM devices 1116 and are specially designed to accept requests from the WOSA/XFS Manager 1112 and pass those requests on to the corresponding device 1116. Theoretically, the ATM terminal application 1114 will be able to run on any vendor's ATM hardware 120 as long as both the ATM terminal application 1114 and the vendor's implementation of the service providers 1118 adhere to the WOSA/XFS specifications.
Another example of an emerging industrial standard for an ATM hardware/software architecture is J/XFS (Java/eXtensions for Financial Services). Unlike WOSA-XFS which is designed for Microsoft Windows® platforms only, J/XFS is a Java-based architecture that may be implemented on any hardware/software platform that supports a Java Virtual Machine (JVM). As shown in FIG. 27, an exemplary J/XFS enabled ATM 1210 may include a J/XFS Kernel. The J/XFS Kernel is similar in functionality to the previously described WOSA/XFS Manager 1112, however the J/XFS Kernel runs in a JVM 1224. The J/XFS Kernel is operative responsive to commands from an ATM terminal application 1214 to have a device service layer 1220 control the operation of ATM devices 1216. Like the previously described service providers 1118, the device service layer 1220 includes vendor provided device services 1218 that correspond to the vendor's hardware devices 1216.
In general the previously described XFS architectures define a standard for the lowest common denominator of ATM hardware features. Unfortunately, by including only those features that are common to all ATM hardware devices, the XFS standards cannot include interfaces to unique features associated with a vendor's particular implementation of a transaction function device. One example of unique features that are not implemented in the XFS interfaces includes access to low level diagnostic testing of individual hardware components of a device. Such control over low level hardware functionality can be very useful when troubleshooting problems with a specific component such as a motor or sensor. Unfortunately, as each vendor may mechanically and/or electronically construct a particular type of device completely differently than another vendor, the XFS standards have not attempted to implement methods for testing low level vendor specific hardware.
It is desirable to keep automated banking machines in operation at all appropriate times to the extent possible. If a machine should experience a malfunction, it is useful to return the machine to service as quickly as possible. The inability to perform low-level diagnostic testing, and the wide variation in vendor developed transaction function device diagnostic testing methods and capabilities may create significant delays in diagnosing and resolving such malfunctions. Thus there exists a need for low level diagnostic tools and testing of ATM hardware which may be used in either single vendor or cross-vendor XFS enabled terminals. There further exists a need for improvements in the operation, reliability, servicing and repair of automated banking machines.